#author  : fuml
#date    : 2019-09-08
#desc    : configparse module

import configparser

config = configparser.ConfigParser()
'''
##> 生成 ini 文件
config['DEFAULT']={
        'ServerAliveInterval':'45',
        'Compression':'yes',
        'Compressionlevel':'9'
    }
config['bitbucket.org']={}
config['bitbucket.org']['User']='hg'

config['topsecret.server.com']={}
topsecret=config['topsecret.server.com']

topsecret['Host Port']='55002'
topsecret['ForwardX11']='no'

config['DEFAULT']['ForwardX11']='yes'

##>  write to file 
with open('example.ini','w') as configfile:
    config.write(configfile)
'''
#-------
# read configfile
#-------

config.read('example.ini',encoding='utf-8')
# print all sections except DEFAULT
print(config.sections())

#print default
print(config.defaults())

# 取到某一个节点的某一项
print(config['bitbucket.org']['User'])

print('------------')
print(config.has_section('default'))
print(config.has_section('DEFAULT'))
print(config.has_section('bitbucket.org'))
print(config.has_section('BItbucket.org'))
# #判断是否存在某个节点
# config.has_section(section)
# #判断在某个节点下是否存在某个option
# config.has_option(section, option)
# 
# 添加某个section


# #移除某个section
# config.remove_section(section)

# #移除某个section下的某个option
# config.remove_option(section, option)
#     
# 
# #更新某个 section 下 的 option 的值
# config.set(section, option, value)

# #获取某个 section 下的 option的值
# config.get(section, option)

# 获取配置下所有的section
print(config.items('topsecret.server.com'))

#修改后保存
config.write(open('example.ini','w'))
